package com.bym.mall.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bym.mall.entity.Order;
import com.bym.mall.vo.OrderVo;
import com.bym.mall.vo.ResponseVo;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author bym
 * @since 2022-06-22
 */
public interface IOrderService extends IService<Order> {

    /**
     * 创建订单
     *
     * @param shippingId 地址id
     * @return {@link ResponseVo}<{@link OrderVo}>
     */
    ResponseVo<OrderVo> create(Integer shippingId);

    /**
     * 订单列表
     *
     * @param pageNum  页面num
     * @param pageSize 页面大小
     * @return {@link ResponseVo}
     */
    ResponseVo list(Integer pageNum, Integer pageSize);

    /**
     * 订单详情
     *
     * @param orderNo 订单号
     * @return {@link ResponseVo}
     */
    ResponseVo detail(Long orderNo);


    /**
     * 取消订单
     *
     * @param orderNo 订单号
     * @return {@link ResponseVo}
     */
    ResponseVo cancel(Long orderNo);

    /**
     * 修改订单的支付状态：未支付->已支付
     *
     * @param orderNo 订单号
     */
    void paid(Long orderNo);
}
